Modern communication networks are more diverse and bandwidth-intensive than ever before. High-bandwidth communication networks are frequently required when a user needs to transmit a data flow. Data flows are data packets or service frames that have been analyzed for the purpose of determining, among others: the process flow to which they belong, the way the packets should be processed and the destination to which a packet should be routed. An exemplary process flow may be a series of packets, all belonging to the signaling of a file transfer protocol (FTP). Often the data flow includes data of different priority, ranging from high priority data, e.g., voice communications, which cannot tolerate significant delays, to low priority data, e.g., file transfers.
Access to a communication network is typically facilitated by a service provider, which maintains equipment at nodes on the network. Generally, service providers supply access to the network for multiple users. A user can access the network with multiple data flows. In order to secure sufficient bandwidth, users often contract for discrete channels, each channel capable of handling the greatest expected bandwidth requirement of a respective data flow. Often, these channels utilize only a small fraction of the maximum allocated bandwidth. As a result, a user either pays for potential bandwidth and uses only a fraction thereof, or takes advantage and uses bandwidth at rates beyond what was actually paid for. In order to enable users to pay only for utilized bandwidth, service providers limit the transmission rate. Means for limiting and controlling the traffic are even more essential in a network employing a non-deterministic access protocol, such as an Ethernet network or a metro Ethernet network (MEN).
Typically, service providers offer a user a range of services that are differentiated based on some performance characteristics, such as delays and packet losses. Specifically, a user purchases a service package that assures a certain level of service level, usually referred to as quality of service (QoS). A service package is determined by a bandwidth profile and a class of service (CoS). The bandwidth profile is a set of traffic parameters that govern the expected arrival pattern of user traffic and provide a deterministic upper bound or an envelope to the expected volume of traffic. The bandwidth traffic parameters are: committed information rate (CIR), committed burst size (CBS), excess information rate (EIR), and excess burst size (EBS). The CoS defines the treatment inside the provider network, i.e., the level of delay requirement. For example, a packet with a high priority level (or simply “high-priority”) CoS may be forwarded at the highest priority to assure minimum processing delay.
The traffic management is performed by the policing function implemented in a device (hereinafter the “policer”), of a network access node. The policer enforces the rate on each incoming data flow or a set of data flows as designated in the service package and as characterized by the bandwidth. The first step in rate enforcement is to determine the level of conformance of the incoming data flow. The level of conformance is typically expressed as one of three colors: green, yellow, or red, where green packets are transmitted at a rate equal to the CBS, yellow packets are transmitted at a rate equal to file EBS, and red packets are not transmitted.
One of the algorithms used to compute the level of conformance of incoming data flows is the token bucket rate algorithm (TBRA). For each incoming flow, the TBRA determines whether to accept or reject the flow. A flow is accepted if its length is less than the bucket content Bj at time tj; otherwise, the flow is rejected. The bucket content at time tj is calculated using the equation:Bj=[L,Bj−1+R×(tj−tj−1)];  (1)here L is the bucket length (i.e., the burst size), and R is the rate. The parameters (L, R) can be replaced by the parameters (CBS, CIR) or (EBS, EIR) and therefore the TBRA can be used to determine the level of conformance for “green packets” and “yellow packets”. Different algorithms based on the principle described in the TBRA may be found in prior art. These include for example “three color marker”, “leaky bucket”, “adaptive leaky bucket”, “one bucket-two colors”, are just to name a few.
At present, policers are not designed to share the available bandwidth according to the CoS. Specifically, the bandwidth can be shared either among an aggregation of data flows with different CoS, or among a set of data flows with the same CoS. In the former case, data flow is served on a basis of “first comes first served”, whereas in the latter case, the policer assures for each CoS a constant rate, as defined by the CIR. However, in both cases a policer can neither serve more than one data flow and more than one CoS, nor share the bandwidth efficiently between different levels of CoS. Examples for policing methods and devices may be found in U.S. Pat. Nos. 5,511,066, 5,541,913 and 6,072,989 to Witters et al, U.S. Pat. No. 6,104,700 to Haddock et al, and U.S. Pat. No. 6,646,988 to Nandy et al, and in U.S. patent application Ser. No. 10/095,909 to Rawlins et al.
Therefore, in the view of the limitations introduced in the prior art, it would be advantageous to provide a policer that handles multiple classes of service and multiple data flows. It would be further advantageous if such a policer shares the bandwidth allocated to a single user in a prioritized manner.